SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.vw_POFPD
AS
SELECT distinct sa.idServicioAgente, sa.Horas, Sa.CargoSalarial, p.CUPOF, 
    ISNULL(P2.CUPOF, 'Sin Madre') PlazaMadre, 
    CASE WHEN P2.CUPOF IS NULL AND 
    PP.TipoPaquete IS NOT NULL 
    THEN TP.Mnemo WHEN P2.CUPOF = P.CUPOF THEN TP.Mnemo
     WHEN P2.CUPOF IS NOT NULL THEN TP.Mnemo ELSE NULL 
    END TipoDePaquete, p.NroSecuencia, p.FechaAlta, 
    p.FechaBaja, o.Nombre Organizacion, 
    so.Descripcion subOrganizacion, 
    CASE WHEN p2.cupof IS NULL 
    THEN p.cuise WHEN p2.cupof IS NOT NULL 
    THEN p2.cuise END CUISE, a.Nombres Agente, a.Documento, 
    l.Descripcion Licencia, sr.Mnemo SR, sl.Mnemo SL, 
    se.Mnemo SE, AutoridadPOF,tb_divisiones.curso
FROM tb_Plazas p INNER JOIN
    tb_Organizaciones o ON 
    idOrganizaciones = p.Organizacion INNER JOIN
    tb_Suborganizaciones so ON 
    p.SubOrganizacion = so.IdSubOrganizacion INNER JOIN
    tb_Subserviciosagentes ssa ON 
    ssa.plaza = p.IdPlaza INNER JOIN
    tb_Serviciosagentes sa ON 
    sa.IdServicioagente = ssa.Servicioagente INNER JOIN
    tb_Agentes a ON a.IdAgente = sa.Agente LEFT OUTER JOIN
    tb_Licencias l ON l.IdLicencia = ssa.licencia INNER JOIN
    tb_SituacionRevista sr ON 
    sr.IdSituacionRevista = sa.SituacionRevista INNER JOIN
    tb_SituacionesLaborales sl ON 
    sl.IdSituacionLaboral = ssa.SituacionLaboral INNER JOIN
    tb_SituacionesExtraordinarias se ON 
    se.IdSituacionExtraordinaria = ssa.SituacionExtraordinaria LEFT
     OUTER JOIN
    tb_PaquetesDePlazas PP ON 
    PP.IdPaquete = P.Paquete LEFT OUTER JOIN
    tb_TiposDePaquete TP ON 
    TP.IdTipoPaquete = PP.TipoPaquete LEFT OUTER JOIN
    tb_Plazas P2 ON p2.IdPlaza = PP.PlazaMadre left join tb_divisiones on iddivision = p.division
WHERE (ssa.Baja = 'N') AND P.IdPlaza NOT IN
        (SELECT PlazaMadre
      FROM tb_PaquetesDePlazas) --and ((Select Modo FROM vw_UsuarioModo) = 1) OR ((Select Modo FROM vw_UsuarioModo) = 2) AND (p.cuise = (SELECT Cuise FROM vw_UsuarioCuise))
UNION
SELECT distinct sa.idServicioAgente, sa.Horas, sa.CargoSalarial, p.CUPOF, 
    'Sin madre', TP.Mnemo TipoDePaquete, p.NroSecuencia, 
    p.FechaAlta, p.FechaBaja, o.Nombre Organizacion, 
    so.Descripcion subOrganizacion, P.cuise CUISE, 
    a.Nombres Agente, a.Documento, l.Descripcion Licencia, 
    sr.Mnemo SR, sl.Mnemo SL, se.Mnemo SE, 
    AutoridadPOF,tb_divisiones.curso
FROM tb_Plazas p INNER JOIN
    tb_Organizaciones o ON 
    idOrganizaciones = p.Organizacion INNER JOIN
    tb_Suborganizaciones so ON 
    so.Idsuborganizacion = p.Suborganizacion INNER JOIN
    tb_Subserviciosagentes ssa ON 
    ssa.plaza = p.IdPlaza INNER JOIN
    tb_Serviciosagentes sa ON 
    sa.IdServicioagente = ssa.Servicioagente INNER JOIN
    tb_Agentes a ON a.IdAgente = sa.Agente LEFT OUTER JOIN
    tb_Licencias l ON l.IdLicencia = ssa.licencia INNER JOIN
    tb_SituacionRevista sr ON 
    sr.IdSituacionRevista = sa.SituacionRevista INNER JOIN
    tb_SituacionesLaborales sl ON 
    sl.IdSituacionLaboral = ssa.SituacionLaboral INNER JOIN
    tb_SituacionesExtraordinarias se ON 
    se.IdSituacionExtraordinaria = ssa.SituacionExtraordinaria LEFT
     OUTER JOIN
    tb_PaquetesDePlazas PP ON 
    PP.IdPaquete = P.Paquete LEFT OUTER JOIN
    tb_TiposDePaquete TP ON 
    TP.IdTipoPaquete = PP.TipoPaquete LEFT OUTER JOIN
    tb_Plazas P2 ON p2.IdPlaza = PP.PlazaMadre  left join tb_divisiones on iddivision = p.division
WHERE (ssa.Baja = 'N') AND (p.paquete IS NULL OR
    (p.paquete IS NOT NULL AND p.Cupof <> p2.Cupof)) --and((Select Modo FROM vw_UsuarioModo) = 1) OR ((Select Modo FROM vw_UsuarioModo) = 2) AND (p.cuise = (SELECT Cuise FROM vw_UsuarioCuise))

UNION --AGREGADO nuevo

SELECT distinct 0, p.Horas, p.CargoSalarialDefault, p.CUPOF, 
     'Sin Madre' PlazaMadre, 
     null, p.NroSecuencia, p.FechaAlta, 
    p.FechaBaja, o.Nombre Organizacion, 
    so.Descripcion subOrganizacion, 
    o.cuise  CUISE, 'Vacante'  Agente, 0, 
    '--' Licencia, '--' SR, '--'  SL, 
    '--' SE, AutoridadPOF,tb_divisiones.curso
FROM tb_Plazas p INNER JOIN
    tb_Organizaciones o ON 
    idOrganizaciones = p.Organizacion INNER JOIN
    tb_Suborganizaciones so ON 
    p.SubOrganizacion = so.IdSubOrganizacion  left join tb_divisiones on iddivision = p.division
WHERE (P.Baja = 'N') AND P.IdPlaza NOT IN
        (SELECT plaza  FROM TB_SUBSERVICIOSAGENTES SSA WHERE SSA.BAJA='N' ) -- and((Select Modo FROM vw_UsuarioModo) = 1) OR ((Select Modo FROM vw_UsuarioModo) = 2) AND (p.cuise = (SELECT Cuise FROM vw_UsuarioCuise))





GO
GRANT SELECT ON  [dbo].[vw_POFPD] TO [SoloVer]
GO
